<!doctype html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1, minimum-scale=1">
<meta name="generator" content="pdoc3 0.11.1">
<title>netmiko.fortinet.fortinet_ssh API documentation</title>
<meta name="description" content="">
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/sanitize.min.css" integrity="sha512-y1dtMcuvtTMJc1yPgEqF0ZjQbhnc/bFhyvIyVNb9Zk5mIGtqVaAB1Ttl28su8AvFMOY0EwRbAe+HCLqj6W7/KA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/10up-sanitize.css/13.0.0/typography.min.css" integrity="sha512-Y1DYSb995BAfxobCkKepB1BqJJTPrOp3zPL74AWFugHHmmdcvO+C48WLrUOlhGMc0QG7AE3f7gmvvcrmX2fDoA==" crossorigin>
<link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/styles/default.min.css" crossorigin>
<style>:root{--highlight-color:#fe9}.flex{display:flex !important}body{line-height:1.5em}#content{padding:20px}#sidebar{padding:1.5em;overflow:hidden}#sidebar > *:last-child{margin-bottom:2cm}.http-server-breadcrumbs{font-size:130%;margin:0 0 15px 0}#footer{font-size:.75em;padding:5px 30px;border-top:1px solid #ddd;text-align:right}#footer p{margin:0 0 0 1em;display:inline-block}#footer p:last-child{margin-right:30px}h1,h2,h3,h4,h5{font-weight:300}h1{font-size:2.5em;line-height:1.1em}h2{font-size:1.75em;margin:2em 0 .50em 0}h3{font-size:1.4em;margin:1.6em 0 .7em 0}h4{margin:0;font-size:105%}h1:target,h2:target,h3:target,h4:target,h5:target,h6:target{background:var(--highlight-color);padding:.2em 0}a{color:#058;text-decoration:none;transition:color .2s ease-in-out}a:visited{color:#503}a:hover{color:#b62}.title code{font-weight:bold}h2[id^="header-"]{margin-top:2em}.ident{color:#900;font-weight:bold}pre code{font-size:.8em;line-height:1.4em;padding:1em;display:block}code{background:#f3f3f3;font-family:"DejaVu Sans Mono",monospace;padding:1px 4px;overflow-wrap:break-word}h1 code{background:transparent}pre{border-top:1px solid #ccc;border-bottom:1px solid #ccc;margin:1em 0}#http-server-module-list{display:flex;flex-flow:column}#http-server-module-list div{display:flex}#http-server-module-list dt{min-width:10%}#http-server-module-list p{margin-top:0}.toc ul,#index{list-style-type:none;margin:0;padding:0}#index code{background:transparent}#index h3{border-bottom:1px solid #ddd}#index ul{padding:0}#index h4{margin-top:.6em;font-weight:bold}@media (min-width:200ex){#index .two-column{column-count:2}}@media (min-width:300ex){#index .two-column{column-count:3}}dl{margin-bottom:2em}dl dl:last-child{margin-bottom:4em}dd{margin:0 0 1em 3em}#header-classes + dl > dd{margin-bottom:3em}dd dd{margin-left:2em}dd p{margin:10px 0}.name{background:#eee;font-size:.85em;padding:5px 10px;display:inline-block;min-width:40%}.name:hover{background:#e0e0e0}dt:target .name{background:var(--highlight-color)}.name > span:first-child{white-space:nowrap}.name.class > span:nth-child(2){margin-left:.4em}.inherited{color:#999;border-left:5px solid #eee;padding-left:1em}.inheritance em{font-style:normal;font-weight:bold}.desc h2{font-weight:400;font-size:1.25em}.desc h3{font-size:1em}.desc dt code{background:inherit}.source summary,.git-link-div{color:#666;text-align:right;font-weight:400;font-size:.8em;text-transform:uppercase}.source summary > *{white-space:nowrap;cursor:pointer}.git-link{color:inherit;margin-left:1em}.source pre{max-height:500px;overflow:auto;margin:0}.source pre code{font-size:12px;overflow:visible}.hlist{list-style:none}.hlist li{display:inline}.hlist li:after{content:',\2002'}.hlist li:last-child:after{content:none}.hlist .hlist{display:inline;padding-left:1em}img{max-width:100%}td{padding:0 .5em}.admonition{padding:.1em 1em;margin-bottom:1em}.admonition-title{font-weight:bold}.admonition.note,.admonition.info,.admonition.important{background:#aef}.admonition.todo,.admonition.versionadded,.admonition.tip,.admonition.hint{background:#dfd}.admonition.warning,.admonition.versionchanged,.admonition.deprecated{background:#fd4}.admonition.error,.admonition.danger,.admonition.caution{background:lightpink}</style>
<style media="screen and (min-width: 700px)">@media screen and (min-width:700px){#sidebar{width:30%;height:100vh;overflow:auto;position:sticky;top:0}#content{width:70%;max-width:100ch;padding:3em 4em;border-left:1px solid #ddd}pre code{font-size:1em}.name{font-size:1em}main{display:flex;flex-direction:row-reverse;justify-content:flex-end}.toc ul ul,#index ul ul{padding-left:1em}.toc > ul > li{margin-top:.5em}}</style>
<style media="print">@media print{#sidebar h1{page-break-before:always}.source{display:none}}@media print{*{background:transparent !important;color:#000 !important;box-shadow:none !important;text-shadow:none !important}a[href]:after{content:" (" attr(href) ")";font-size:90%}a[href][title]:after{content:none}abbr[title]:after{content:" (" attr(title) ")"}.ir a:after,a[href^="javascript:"]:after,a[href^="#"]:after{content:""}pre,blockquote{border:1px solid #999;page-break-inside:avoid}thead{display:table-header-group}tr,img{page-break-inside:avoid}img{max-width:100% !important}@page{margin:0.5cm}p,h2,h3{orphans:3;widows:3}h1,h2,h3,h4,h5,h6{page-break-after:avoid}}</style>
<script defer src="https://cdnjs.cloudflare.com/ajax/libs/highlight.js/11.9.0/highlight.min.js" integrity="sha512-D9gUyxqja7hBtkWpPWGt9wfbfaMGVt9gnyCvYa+jojwwPHLCzUm5i8rpk7vD7wNee9bA35eYIjobYPaQuKS1MQ==" crossorigin></script>
<script>window.addEventListener('DOMContentLoaded', () => {
hljs.configure({languages: ['bash', 'css', 'diff', 'graphql', 'ini', 'javascript', 'json', 'plaintext', 'python', 'python-repl', 'rust', 'shell', 'sql', 'typescript', 'xml', 'yaml']});
hljs.highlightAll();
})</script>
</head>
<body>
<main>
<article id="content">
<header>
<h1 class="title">Module <code>netmiko.fortinet.fortinet_ssh</code></h1>
</header>
<section id="section-intro">
</section>
<section>
</section>
<section>
</section>
<section>
</section>
<section>
<h2 class="section-title" id="header-classes">Classes</h2>
<dl>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH"><code class="flex name class">
<span>class <span class="ident">FortinetSSH</span></span>
<span>(</span><span>*args: Any, **kwargs: Any)</span>
</code></dt>
<dd>
<div class="desc"><p>Class for platforms that have no config mode.</p>
<p>check_config_mode returns True as the expectation is that configuration commands
can be executed directly. So in your current state, you are in "config mode" i.e.
you can make configuration changes.</p>
<p>If you truly cannot make any configuration changes to device then you should probably
overwrite check_config_mode in the platform specific driver and return False.</p></div>
<details class="source">
<summary>
<span>Expand source code</span>
</summary>
<pre><code class="python">class FortinetSSH(NoConfig, NoEnable, CiscoSSHConnection):
    prompt_pattern = r&#34;[#$]&#34;
    preferred_kex = {
        &#34;diffie-hellman-group14-sha1&#34;,
        &#34;diffie-hellman-group-exchange-sha1&#34;,
        &#34;diffie-hellman-group-exchange-sha256&#34;,
        &#34;diffie-hellman-group1-sha1&#34;,
    }

    def __init__(self, *args: Any, **kwargs: Any) -&gt; None:
        disabled_algorithms = kwargs.get(&#34;disabled_algorithms&#34;)
        # Set this as long as no &#34;kex&#34; settings being passed via disabled_algorithms
        if disabled_algorithms is None or not disabled_algorithms.get(&#34;kex&#34;):
            paramiko_transport = getattr(paramiko, &#34;Transport&#34;)
            paramiko_cur_kex = set(paramiko_transport._preferred_kex)
            # Disable any kex not in allowed fortinet set
            disabled_kex = list(paramiko_cur_kex - self.preferred_kex)
            kwargs[&#34;disabled_algorithms&#34;] = {&#34;kex&#34;: disabled_kex}

        super().__init__(*args, **kwargs)

    def _try_session_preparation(self, force_data: bool = False) -&gt; None:
        super()._try_session_preparation(force_data=force_data)

    def session_preparation(self) -&gt; None:
        &#34;&#34;&#34;Prepare the session after the connection has been established.&#34;&#34;&#34;

        data = self._test_channel_read(pattern=f&#34;to accept|{self.prompt_pattern}&#34;)
        # If &#34;set post-login-banner enable&#34; is set it will require you to press &#39;a&#39;
        # to accept the banner before you login. This will accept if it occurs
        if &#34;to accept&#34; in data:
            self.write_channel(&#34;a\r&#34;)
            self._test_channel_read(pattern=self.prompt_pattern)

        self.set_base_prompt()
        self._vdoms = self._vdoms_enabled()
        self._os_version = self._determine_os_version()
        # Retain how the &#39;output mode&#39; was original configured.
        self._original_output_mode = self._get_output_mode()
        self._output_mode = self._original_output_mode
        self.disable_paging()

    def set_base_prompt(
        self,
        pri_prompt_terminator: str = r&#34;#&#34;,
        alt_prompt_terminator: str = r&#34;$&#34;,
        delay_factor: float = 1.0,
        pattern: Optional[str] = None,
    ) -&gt; str:
        if not pattern:
            pattern = self.prompt_pattern
        return super().set_base_prompt(
            pri_prompt_terminator=pri_prompt_terminator,
            alt_prompt_terminator=alt_prompt_terminator,
            delay_factor=delay_factor,
            pattern=pattern,
        )

    def find_prompt(
        self, delay_factor: float = 1.0, pattern: Optional[str] = None
    ) -&gt; str:
        if not pattern:
            pattern = self.prompt_pattern
        return super().find_prompt(
            delay_factor=delay_factor,
            pattern=pattern,
        )

    def _vdoms_enabled(self) -&gt; bool:
        &#34;&#34;&#34;Determine whether virtual domains are enabled or not.&#34;&#34;&#34;
        check_command = &#34;get system status | grep Virtual&#34;
        output = self._send_command_str(
            check_command, expect_string=self.prompt_pattern
        )
        return bool(
            re.search(
                r&#34;Virtual domain configuration: (multiple|enable|split-task)&#34;, output
            )
        )

    def _config_global(self) -&gt; str:
        &#34;&#34;&#34;Enter &#39;config global&#39; mode, raise a ValueError exception on failure.&#34;&#34;&#34;
        try:
            return self._send_command_str(
                &#34;config global&#34;, expect_string=self.prompt_pattern
            )
        except Exception:
            msg = &#34;&#34;&#34;
Netmiko may require &#39;config global&#39; access to properly disable output paging.
Alternatively you can try configuring &#39;configure system console -&gt; set output standard&#39;.
&#34;&#34;&#34;
            raise ValueError(msg)

    def _exit_config_global(self) -&gt; str:
        &#34;&#34;&#34;Exit &#39;config global&#39; mode.&#34;&#34;&#34;
        try:
            return self._send_command_str(&#34;end&#34;, expect_string=self.prompt_pattern)
        except Exception:
            msg = &#34;Unable to properly exit &#39;config global&#39; mode.&#34;
            raise ValueError(msg)

    def disable_paging(
        self,
        command: str = &#34;terminal length 0&#34;,
        delay_factor: Optional[float] = None,
        cmd_verify: bool = True,
        pattern: Optional[str] = None,
    ) -&gt; str:
        &#34;&#34;&#34;Disable paging is only available with specific roles so it may fail.&#34;&#34;&#34;

        output = &#34;&#34;
        if self._output_mode == &#34;standard&#34;:
            # Do nothing - already correct.
            return &#34;&#34;

        if self._vdoms:
            output += self._config_global()
        disable_paging_commands = [
            &#34;config system console&#34;,
            &#34;set output standard&#34;,
            &#34;end&#34;,
        ]
        output += self.send_multiline(
            disable_paging_commands, expect_string=self.prompt_pattern
        )
        self._output_mode = &#34;standard&#34;

        if self._vdoms:
            output += self._exit_config_global()
        return output

    def _determine_os_version(self) -&gt; str:
        check_command = &#34;get system status | grep Version&#34;
        output = self._send_command_str(
            check_command, expect_string=self.prompt_pattern
        )
        if re.search(r&#34;^Version: .* (v[78]\.).*$&#34;, output, flags=re.M):
            return &#34;v7_or_later&#34;
        elif re.search(r&#34;^Version: .* (v[654]\.).*$&#34;, output, flags=re.M):
            return &#34;v6_or_earlier&#34;
        else:
            raise ValueError(&#34;Unexpected FortiOS Version encountered.&#34;)

    def _get_output_mode_v6(self) -&gt; str:
        &#34;&#34;&#34;
        FortiOS V6 and earlier.
        Retrieve the current output mode.
        &#34;&#34;&#34;
        if self._vdoms:
            self._config_global()

        output = self._send_command_str(&#34;show full-configuration system console&#34;)

        if self._vdoms:
            self._exit_config_global()

        pattern = r&#34;^\s+set output (?P&lt;mode&gt;\S+)\s*$&#34;
        result_mode_re = re.search(pattern, output, flags=re.M)
        if result_mode_re:
            result_mode = result_mode_re.group(&#34;mode&#34;).strip()
            if result_mode in [&#34;more&#34;, &#34;standard&#34;]:
                return result_mode

        raise ValueError(&#34;Unable to determine the output mode on the Fortinet device.&#34;)

    def _get_output_mode_v7(self) -&gt; str:
        &#34;&#34;&#34;
        FortiOS V7 and later.
        Retrieve the current output mode.
        &#34;&#34;&#34;
        if self._vdoms:
            self._config_global()

        output = self._send_command_str(
            &#34;get system console&#34;, expect_string=self.prompt_pattern
        )

        if self._vdoms:
            self._exit_config_global()

        pattern = r&#34;output\s+:\s+(?P&lt;mode&gt;\S+)\s*$&#34;
        result_mode_re = re.search(pattern, output, flags=re.M)
        if result_mode_re:
            result_mode = result_mode_re.group(&#34;mode&#34;).strip()
            if result_mode in [&#34;more&#34;, &#34;standard&#34;]:
                return result_mode

        raise ValueError(&#34;Unable to determine the output mode on the Fortinet device.&#34;)

    def _get_output_mode(self) -&gt; str:
        &#34;&#34;&#34;Save the state of the output mode so it can be reset at the end of the session.&#34;&#34;&#34;

        # Fortios Version6 does not support &#39;get system console&#39;
        if &#34;v6&#34; in self._os_version:
            return self._get_output_mode_v6()
        elif &#34;v7&#34; in self._os_version:
            return self._get_output_mode_v7()
        else:
            raise ValueError(&#34;Unexpected FortiOS Version encountered.&#34;)

    def cleanup(self, command: str = &#34;exit&#34;) -&gt; None:
        &#34;&#34;&#34;Re-enable paging globally.&#34;&#34;&#34;
        output = &#34;&#34;
        if self._original_output_mode == &#34;more&#34;:
            if self._vdoms:
                output += self._config_global()
            commands = [
                &#34;config system console&#34;,
                &#34;set output more&#34;,
                &#34;end&#34;,
            ]
            output += self.send_multiline(commands, expect_string=self.prompt_pattern)
            if self._vdoms:
                self._exit_config_global()
        return super().cleanup(command=command)

    def save_config(
        self, cmd: str = &#34;&#34;, confirm: bool = False, confirm_response: str = &#34;&#34;
    ) -&gt; str:
        &#34;&#34;&#34;Not Implemented&#34;&#34;&#34;
        raise NotImplementedError</code></pre>
</details>
<h3>Ancestors</h3>
<ul class="hlist">
<li><a title="netmiko.no_config.NoConfig" href="../no_config.html#netmiko.no_config.NoConfig">NoConfig</a></li>
<li><a title="netmiko.no_enable.NoEnable" href="../no_enable.html#netmiko.no_enable.NoEnable">NoEnable</a></li>
<li><a title="netmiko.cisco_base_connection.CiscoSSHConnection" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoSSHConnection">CiscoSSHConnection</a></li>
<li><a title="netmiko.cisco_base_connection.CiscoBaseConnection" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection">CiscoBaseConnection</a></li>
<li><a title="netmiko.base_connection.BaseConnection" href="../base_connection.html#netmiko.base_connection.BaseConnection">BaseConnection</a></li>
</ul>
<h3>Class variables</h3>
<dl>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.preferred_kex"><code class="name">var <span class="ident">preferred_kex</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.prompt_pattern"><code class="name">var <span class="ident">prompt_pattern</span></code></dt>
<dd>
<div class="desc"></div>
</dd>
</dl>
<h3>Methods</h3>
<dl>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.cleanup"><code class="name flex">
<span>def <span class="ident">cleanup</span></span>(<span>self, command: str = 'exit') ‑> None</span>
</code></dt>
<dd>
<div class="desc"><p>Re-enable paging globally.</p></div>
</dd>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.disable_paging"><code class="name flex">
<span>def <span class="ident">disable_paging</span></span>(<span>self, command: str = 'terminal length 0', delay_factor: Optional[float] = None, cmd_verify: bool = True, pattern: Optional[str] = None) ‑> str</span>
</code></dt>
<dd>
<div class="desc"><p>Disable paging is only available with specific roles so it may fail.</p></div>
</dd>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.save_config"><code class="name flex">
<span>def <span class="ident">save_config</span></span>(<span>self, cmd: str = '', confirm: bool = False, confirm_response: str = '') ‑> str</span>
</code></dt>
<dd>
<div class="desc"><p>Not Implemented</p></div>
</dd>
<dt id="netmiko.fortinet.fortinet_ssh.FortinetSSH.session_preparation"><code class="name flex">
<span>def <span class="ident">session_preparation</span></span>(<span>self) ‑> None</span>
</code></dt>
<dd>
<div class="desc"><p>Prepare the session after the connection has been established.</p></div>
</dd>
</dl>
<h3>Inherited members</h3>
<ul class="hlist">
<li><code><b><a title="netmiko.cisco_base_connection.CiscoSSHConnection" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoSSHConnection">CiscoSSHConnection</a></b></code>:
<ul class="hlist">
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.check_config_mode" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.check_config_mode">check_config_mode</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.check_enable_mode" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.check_enable_mode">check_enable_mode</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.clear_buffer" href="../base_connection.html#netmiko.base_connection.BaseConnection.clear_buffer">clear_buffer</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.commit" href="../base_connection.html#netmiko.base_connection.BaseConnection.commit">commit</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.config_mode" href="../base_connection.html#netmiko.base_connection.BaseConnection.config_mode">config_mode</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.disconnect" href="../base_connection.html#netmiko.base_connection.BaseConnection.disconnect">disconnect</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.enable" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.enable">enable</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.establish_connection" href="../base_connection.html#netmiko.base_connection.BaseConnection.establish_connection">establish_connection</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.exit_config_mode" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.exit_config_mode">exit_config_mode</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.exit_enable_mode" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.exit_enable_mode">exit_enable_mode</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.find_prompt" href="../base_connection.html#netmiko.base_connection.BaseConnection.find_prompt">find_prompt</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.is_alive" href="../base_connection.html#netmiko.base_connection.BaseConnection.is_alive">is_alive</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.normalize_cmd" href="../base_connection.html#netmiko.base_connection.BaseConnection.normalize_cmd">normalize_cmd</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.normalize_linefeeds" href="../base_connection.html#netmiko.base_connection.BaseConnection.normalize_linefeeds">normalize_linefeeds</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.paramiko_cleanup" href="../base_connection.html#netmiko.base_connection.BaseConnection.paramiko_cleanup">paramiko_cleanup</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.read_channel" href="../base_connection.html#netmiko.base_connection.BaseConnection.read_channel">read_channel</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.read_channel_timing" href="../base_connection.html#netmiko.base_connection.BaseConnection.read_channel_timing">read_channel_timing</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.read_until_pattern" href="../base_connection.html#netmiko.base_connection.BaseConnection.read_until_pattern">read_until_pattern</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.read_until_prompt" href="../base_connection.html#netmiko.base_connection.BaseConnection.read_until_prompt">read_until_prompt</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.read_until_prompt_or_pattern" href="../base_connection.html#netmiko.base_connection.BaseConnection.read_until_prompt_or_pattern">read_until_prompt_or_pattern</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.run_ttp" href="../base_connection.html#netmiko.base_connection.BaseConnection.run_ttp">run_ttp</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.select_delay_factor" href="../base_connection.html#netmiko.base_connection.BaseConnection.select_delay_factor">select_delay_factor</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_command" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_command">send_command</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_command_expect" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_command_expect">send_command_expect</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_command_timing" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_command_timing">send_command_timing</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_config_from_file" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_config_from_file">send_config_from_file</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_config_set" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_config_set">send_config_set</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.send_multiline" href="../base_connection.html#netmiko.base_connection.BaseConnection.send_multiline">send_multiline</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.set_base_prompt" href="../base_connection.html#netmiko.base_connection.BaseConnection.set_base_prompt">set_base_prompt</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.set_terminal_width" href="../base_connection.html#netmiko.base_connection.BaseConnection.set_terminal_width">set_terminal_width</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.special_login_handler" href="../base_connection.html#netmiko.base_connection.BaseConnection.special_login_handler">special_login_handler</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.strip_ansi_escape_codes" href="../base_connection.html#netmiko.base_connection.BaseConnection.strip_ansi_escape_codes">strip_ansi_escape_codes</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.strip_backspaces" href="../base_connection.html#netmiko.base_connection.BaseConnection.strip_backspaces">strip_backspaces</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.strip_command" href="../base_connection.html#netmiko.base_connection.BaseConnection.strip_command">strip_command</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.strip_prompt" href="../base_connection.html#netmiko.base_connection.BaseConnection.strip_prompt">strip_prompt</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.telnet_login" href="../cisco_base_connection.html#netmiko.cisco_base_connection.CiscoBaseConnection.telnet_login">telnet_login</a></code></li>
<li><code><a title="netmiko.cisco_base_connection.CiscoSSHConnection.write_channel" href="../base_connection.html#netmiko.base_connection.BaseConnection.write_channel">write_channel</a></code></li>
</ul>
</li>
</ul>
</dd>
</dl>
</section>
</article>
<nav id="sidebar">
<div class="toc">
<ul></ul>
</div>
<ul id="index">
<li><h3>Super-module</h3>
<ul>
<li><code><a title="netmiko.fortinet" href="index.html">netmiko.fortinet</a></code></li>
</ul>
</li>
<li><h3><a href="#header-classes">Classes</a></h3>
<ul>
<li>
<h4><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH">FortinetSSH</a></code></h4>
<ul class="two-column">
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.cleanup" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.cleanup">cleanup</a></code></li>
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.disable_paging" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.disable_paging">disable_paging</a></code></li>
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.preferred_kex" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.preferred_kex">preferred_kex</a></code></li>
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.prompt_pattern" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.prompt_pattern">prompt_pattern</a></code></li>
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.save_config" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.save_config">save_config</a></code></li>
<li><code><a title="netmiko.fortinet.fortinet_ssh.FortinetSSH.session_preparation" href="#netmiko.fortinet.fortinet_ssh.FortinetSSH.session_preparation">session_preparation</a></code></li>
</ul>
</li>
</ul>
</li>
</ul>
</nav>
</main>
<footer id="footer">
<p>Generated by <a href="https://pdoc3.github.io/pdoc" title="pdoc: Python API documentation generator"><cite>pdoc</cite> 0.11.1</a>.</p>
</footer>
</body>
</html>
